package com.chenwc.util.translate.baidu.enumeration;

/**
 * @author chenwc
 * @package com.chenwc.util.translate.baidu.enumeration
 * @project wso2-sinicization
 * @date 2024/5/26
 */
public enum BaiDuErrorCode {
    C_52000(52000, "成功", ""),
    C_52001(52001, "请求超时", "重试"),
    C_52002(52002, "系统错误", "重试"),
    C_52003(52003, "未授权用户", "请检查您的appid是否正确，或者服务是否开通"),
    C_54000(54000, "必填参数为空", "请检查是否少传参数"),
    C_54001(54001, "签名错误", "请检查您的签名生成方法"),
    C_54003(54003, "访问频率受限", "请降低您的调用频率，或进行身份认证后切换为高级版/尊享版"),
    C_54004(54004, "账户余额不足", "请前往管理控制台为账户充值"),
    C_54005(54005, "长query请求频繁", "请降低长query的发送频率，3s后再试"),
    C_58000(58000, "客户端IP非法", "检查个人资料里填写的IP地址是否正确，可前往开发者信息-基本信息修改"),
    C_58001(58001, "译文语言方向不支持", "检查译文语言是否在语言列表里"),
    C_58002(58002, "服务当前已关闭", "请前往管理控制台开启服务"),
    C_90107(90107, "认证未通过或未生效", "请前往我的认证查看认证进度");
    private int code;
    private String message;

    private String handleMethod;

    BaiDuErrorCode(int code, String message, String handleMethod) {
        this.code = code;
        this.message = message;
        this.handleMethod = handleMethod;
    }

    /**
     * 根据错误代码获取代码的描述
     *
     * @param code 错误代码
     * @return 描述
     */
    public static String getErrorCodeMessage(int code) {
        for (BaiDuErrorCode errorCode : BaiDuErrorCode.values()) {
            if (errorCode.getCode() == code) {
                return errorCode.getMessage();
            }
        }
        return "未知异常";
    }

    public int getCode() {
        return code;
    }
    public String getMessage() {
        return message;
    }
    public String getHandleMethod() {
        return handleMethod;
    }
}
